export function countDown(endTime) {
	// 获取结束时间的时间戳（单位毫秒）
	var endTime = endTime
	//获取当前时间的时间戳（单位毫秒）
	var nowTime = new Date() * 1;
	//把剩余时间毫秒数转化为秒
	var times = (endTime - nowTime);
	//计算小时数 转化为整数
	var h = parseInt(times / 1000 / 60 / 60 % 24);
	//如果小时数小于 10，要变成 0 + 数字的形式 赋值给盒子
	h = h < 10 ? "0" + h : h;
	//计算分钟数 转化为整数
	var m = parseInt(times / 1000 / 60 % 60);
	//如果分钟数小于 10，要变成 0 + 数字的形式 赋值给盒子
	m = m < 10 ? "0" + m : m;
	//计算秒数 转化为整数
	var s = parseInt(times / 1000 % 60);
	//如果秒钟数小于 10，要变成 0 + 数字的形式 赋值给盒子
	s = s < 10 ? "0" + s : s;
	//计算毫秒数 转化为整数
	var hs = parseInt(times % 600);
	hs = hs < 10 ? "00" + hs : hs < 100 ? "0" + hs : hs;
	return h + ':' + m + ':' + s
	// return m + ':' + s + ':' + hs
}

// 时间戳转时间格式
export function formatTime(date, fmt) {
	var o = {
		"M+": date.getMonth() + 1, // 月份
		"d+": date.getDate(), // 日
		"h+": date.getHours(), // 小时
		"m+": date.getMinutes(), // 分
		"s+": date.getSeconds(), // 秒
		"q+": Math.floor((date.getMonth() + 3) / 3), // 季度
		"S": date.getMilliseconds() // 毫秒
	};
	if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
	for (var k in o)
		if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((
			"00" + o[k]).substr(("" + o[k]).length)));
	return fmt;
}

export function getQueryString(url) {
	let ItemArr = [];
	let ItemObj = {};
	url
		.substring(url.lastIndexOf("?") + 1, url.length)
		.split("&")
		.map((item) => {
			ItemArr.push(item.split("="));
		});
	ItemArr.map((item) => {
		ItemObj[item[0]] = item[1];
	});
	return ItemObj;
}


export function jinwei(val) {
	var str = "";
	if (val >= 10000 && val <= 99999999) { // 万
		// str = (Number(val) / 10000).toFixed(2) + "万";
		str = Math.floor((Number(val) / 10000)*100)/100  + "万";
	} else if (val > 99999999) { // 亿
		// str = (Number(val) / 100000000).toFixed(2) + "亿";
		str = Math.floor((Number(val) / 100000000)*100)/100  + "亿";
	} else {
		str = val;
	}
	return str;
};

/**
 *防抖
 */
let timer



export function debounce(fn, delay) {
	clearTimeout(timer)
	timer = setTimeout(() => {
		fn();
	}, delay);
}
/**
 *节流函数
 */

let lastCall = 0



export function throttle(fn, delay) {
	const now = new Date().getTime();
	if (now - lastCall < delay) {
		return
	}
	lastCall = now
	fn.apply(this, arguments)

}

//获取权限通知栏弹窗
const permissionMap = {
	Android: {
		"android.permission.WRITE_EXTERNAL_STORAGE": {
			title: "相机/相册/存储权限说明",
			content: "当使用APP时，会在发布、内容制作、内容保存、分享时访问相机/相册/存储权限。不授权上述权限，不影响APP其他功能使用。",
		},
		"android.permission.CAMERA": {
			title: "相机权限说明",
			content: "便于您使用该功能上传图片，用于与客服沟通等场景中发送拍摄图片",
		},
		"android.permission.RECORD_AUDIO": {
			title: "录音权限说明",
			content: "便于您使用该功能录音，用于与客服沟通等场景中发送语音",
		},
	},
	iOS: {},
};

export function createView() {
	return new plus.nativeObj.View("per-modal", {
		top: "0px",
		left: "0px",
		width: "100%",
		backgroundColor: "rgba(0,0,0,0.2)",
		// opacity: '.9'
	});
}

export function showViewDesc(view, permission, plat = "android") {
	view.drawRect({
		color: "#fff",
		radius: "5px",
	}, {
		top: "30px",
		left: "5%",
		width: "90%",
		height: "100px",
	});
	const info = permissionMap[plat][permission]
	if (info) {
		view.drawRect({
			color: '#fff',
			radius: '5px',
		}, {
			top: '30px',
			left: '5%',
			width: '90%',
			height: '100px',
		}, )
		view.drawText(
			info.title, {
				top: '40px',
				left: '8%',
				height: '30px',
			}, {
				align: 'left',
				color: '#000',
			},
		)
		view.drawText(
			info.content, {
				top: '65px',
				height: '60px',
				left: '8%',
				width: '84%',
			}, {
				whiteSpace: 'normal',
				size: '14px',
				align: 'left',
				color: '#656563',
			},
		)
	}
}

export function perListener() {
	// 只在 App 端使用
	// #ifdef APP-PLUS
	if(uni.getSystemInfoSync().platform == 'android'){
		const permissionListener = uni.createRequestPermissionListener();
	}
	// 得到使用平台
	const plat = plus.os.name;
	const view = createView();
	permissionListener.onConfirm((e) => {
		const keys = Object.keys(permissionMap[plat]);
		for (const key of keys) {
			// 判断是否保护公共权限
			if (e.includes(key)) {
				showViewDesc(view, key, plat);
				view.show();
				break;
			}
		}

	});
	permissionListener.onComplete((e) => {
		view.hide();
	});
	// #endif
}